package com.sybil.ot.dao;

import com.sybil.ot.dominio.HistoricoOT;
import com.sybil.ot.dominio.HistoricoOTPK;
import com.sybil.ot.dominio.OrdenTrabajo;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Repository;

@Repository("historicoOTDAO")
public class HistoricoOTDAO extends AbstractDAO<HistoricoOT, HistoricoOTPK> {

   public HistoricoOTDAO() {
      super(HistoricoOT.class);
   }

   public List<HistoricoOT> obtenerHistoricosOT() {
      return obtener();
   }

   public HistoricoOT obtenerHistoricoOT(HistoricoOTPK clave) {
      return obtener(clave);
   }

   public void guardarHistoricoOT(HistoricoOT historicoOT) {
      guardar(historicoOT);
   }

   public void editarHistoricoOT(HistoricoOT historicoOT) {
      editar(historicoOT);
   }

   public void eliminarHistoricoOT(HistoricoOT historicoOT) {
      eliminar(historicoOT);
   }

   public Integer obtenerSecuencia(String serieOT, int numeroOT) {
      Integer siguiente = 0;
      Query query = sesionActual().getNamedQuery("HistoricoOT.maxPorOT")
              .setString("serieOT", serieOT).setInteger("numeroOT", numeroOT);
      List list = query.list();
      Object get = list.get(0);
      if (get != null) {
         siguiente = (Integer) list.get(0);
      }
      siguiente++;
      return siguiente;
   }

   public List<HistoricoOT> obtenerPorOT(String serie, int numero) {
      return obtener(Restrictions.eq("ordenTrabajo", new OrdenTrabajo(serie, numero)));
   }
}
